home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************
- FILE : d3_units.c
- SHORTNAME : units.c
- SNNS VERSION : 3.2
-
- PURPOSE : controls the unit pannel
- NOTES :
-
- AUTHOR : Ralf Huebner
- DATE : 1.12.1991
-
- CHANGED BY :
- IDENTIFICATION : @(#)d3_units.c 1.10 3/2/94
- SCCS VERSION : 1.10
- LAST CHANGE : 3/2/94
-
- Copyright (c) 1990-1994 SNNS Group, IPVR, Univ. Stuttgart, FRG
-
- ******************************************************************************/
-
-
- #include <stdio.h>
- #include <memory.h>
-
- #include <X11/Xlib.h>
- #include <X11/Xutil.h>
- #include <X11/Intrinsic.h>
- #include <X11/StringDefs.h>
- #include <X11/Shell.h>
- #include <X11/Xaw/Simple.h>
- #include <X11/Xaw/Box.h>
- #include <X11/Xaw/Form.h>
- #include <X11/Xaw/Toggle.h>
-
- #include "ui.h"
- #include "glob_typ.h"
- #include "ui_xWidgets.h"
- #include "d3_global.h"
- #include "d3_xUtils.h"
- #include "d3_main.h"
-
- #include "d3_units.ph"
-
-
- /*****************************************************************************
- FUNCTION : d3_closeUnitPannel
-
- PURPOSE : closes the unit pannel
- RETURNS : void
- NOTES :
-
- UPDATE :
- ******************************************************************************/
-
- static void d3_closeUnitPannel (Widget w, Widget pannel, caddr_t call_data)
-
- {
- XtDestroyWidget (pannel);
- if (memcmp (&d3_state.unit_mode, &temp_unit_mode,
- sizeof (d3_unit_mode_type)) != 0) {
- memcpy (&d3_state.unit_mode, &temp_unit_mode,
- sizeof (d3_unit_mode_type));
- d3_drawNet ();
- }
- }
-
-
- /*****************************************************************************
- FUNCTION : d3_setUnitMode
-
- PURPOSE : sets the toggles in the lower part of the unit pannel
- RETURNS : void
- NOTES : return if monochrome display and color selected
-
- UPDATE :
- ******************************************************************************/
-
- static void d3_setUnitMode (Widget w, int mode, caddr_t call_data)
-
- {
- Boolean activflag, initflag, outflag, biasflag;
- Boolean nameflag, numflag, zflag, noneflag;
-
- if ((d3_state.color_mode == mono_mode) && (mode == select_color))
- return;
- activflag = initflag = outflag = biasflag = FALSE;
- nameflag = numflag = zflag = noneflag = FALSE;
- toggled_unit_mode = mode;
- switch (mode) {
- case activation_on : activflag = TRUE;
- break;
- case init_act_on : initflag = TRUE;
- break;
- case output_on : outflag = TRUE;
- break;
- case bias_on : biasflag = TRUE;
- break;
- case name_on : nameflag = TRUE;
- break;
- case number_on : numflag = TRUE;
- break;
- case zvalue_on : zflag = TRUE;
- break;
- case nothing_on : noneflag = TRUE;
- break;
- }
- ui_xSetToggleState (activation, activflag);
- ui_xSetToggleState (initact, initflag);
- ui_xSetToggleState (output, outflag);
- ui_xSetToggleState (bias, biasflag);
- ui_xSetToggleState (name, nameflag);
- ui_xSetToggleState (number, numflag);
- ui_xSetToggleState (zvalue, zflag);
- ui_xSetToggleState (nothing, noneflag);
- switch (selected_unit_mode) {
- case select_size : temp_unit_mode.size = mode;
- break;
- case select_color : if (d3_state.color_mode == mono_mode)
- break;
- temp_unit_mode.color = mode;
- break;
- case select_toplabel : temp_unit_mode.top_label = mode;
- break;
- case select_bottlabel : temp_unit_mode.bottom_label = mode;
- break;
- }
- }
-
-
- /*****************************************************************************
- FUNCTION : d3_selectUnitMode
-
- PURPOSE : sets the toggles in the upper part of the unit pannel
- RETURNS : void
- NOTES : return if monochrome display and color selected
-
- UPDATE :
- ******************************************************************************/
-
- static void d3_selectUnitMode (Widget w, int selected, caddr_t call_data)
-
- {
- Boolean sizeflag, colorflag, toplabelflag, bottlabelflag;
-
- if ((d3_state.color_mode == mono_mode) && (selected == select_color)) {
- ui_xSetToggleState (color, FALSE);
- return;
- }
- sizeflag = colorflag = toplabelflag = bottlabelflag = FALSE;
- selected_unit_mode = selected;
- switch (selected) {
- case select_size : sizeflag = TRUE;
- d3_setUnitMode (w, temp_unit_mode.size, NULL);
- break;
- case select_color : colorflag = TRUE;
- d3_setUnitMode (w, temp_unit_mode.color, NULL);
- break;
- case select_toplabel : toplabelflag = TRUE;
- d3_setUnitMode (w, temp_unit_mode.top_label, NULL);
- break;
- case select_bottlabel : bottlabelflag = TRUE;
- d3_setUnitMode (w, temp_unit_mode.bottom_label, NULL);
- break;
- }
- ui_xSetToggleState (size, sizeflag);
- ui_xSetToggleState (color, colorflag);
- ui_xSetToggleState (toplabel, toplabelflag);
- ui_xSetToggleState (bottlabel, bottlabelflag);
- }
-
-
- /*****************************************************************************
- FUNCTION : d3_createUnitPannel
-
- PURPOSE : creates the unit pannel
- RETURNS : void
- NOTES :
-
- UPDATE :
- ******************************************************************************/
-
- void d3_createUnitPannel (Widget w, Widget button, caddr_t call_data)
-
- {
- int n;
- Arg arg[10];
- Position xPos, yPos;
- Dimension width, height;
- Widget unitPannel, border, pannel1, pannel2, done, dummy;
- static Boolean first_call = TRUE;
-
- n = 0;
- XtSetArg (arg[n], XtNwidth, &width); n++;
- XtSetArg (arg[n], XtNheight, &height); n++;
- XtGetValues (button, arg, (unsigned int) n);
-
- XtTranslateCoords (button,
- (Position) (width / 2), (Position) (height / 2), &xPos, &yPos);
-
- n = 0;
-
- XtSetArg(arg[n], XtNx, xPos); n++;
- XtSetArg(arg[n], XtNy, yPos); n++;
-
- unitPannel = XtCreatePopupShell ("units", transientShellWidgetClass,
- button, arg, (unsigned int) n);
-
- border = XtCreateManagedWidget("border", boxWidgetClass,
- unitPannel, NULL, ZERO);
-
- pannel1 = XtCreateManagedWidget("pannel1", boxWidgetClass, border, NULL, ZERO);
-
- size = d3_xCreateToggleItem ("size", pannel1, NULL, NULL, NULL);
- color = d3_xCreateToggleItem ("color", pannel1, NULL, NULL, NULL);
- toplabel = d3_xCreateToggleItem ("toplabel", pannel1, NULL, NULL, NULL);
- bottlabel = d3_xCreateToggleItem ("bottlabel", pannel1, NULL, NULL, NULL);
-
- XtAddCallback(size, XtNcallback, (XtCallbackProc) d3_selectUnitMode, (caddr_t) select_size);
- XtAddCallback(color, XtNcallback, (XtCallbackProc) d3_selectUnitMode, (caddr_t) select_color);
- XtAddCallback(toplabel, XtNcallback, (XtCallbackProc) d3_selectUnitMode, (caddr_t) select_toplabel);
- XtAddCallback(bottlabel, XtNcallback, (XtCallbackProc) d3_selectUnitMode, (caddr_t) select_bottlabel);
-
- dummy = ui_xCreateLabelItem (" ", border, d3_fontWidth, NULL, NULL);
-
- pannel2 = XtCreateManagedWidget("pannel2", boxWidgetClass, border, NULL, ZERO);
-
- activation = d3_xCreateToggleItem ("activation", pannel2, NULL, NULL, NULL);
- initact = d3_xCreateToggleItem ("initact", pannel2, NULL, NULL, NULL);
- output = d3_xCreateToggleItem ("output", pannel2, NULL, NULL, NULL);
- bias = d3_xCreateToggleItem ("bias", pannel2, NULL, NULL, NULL);
- name = d3_xCreateToggleItem ("name", pannel2, NULL, NULL, NULL);
- number = d3_xCreateToggleItem ("number", pannel2, NULL, NULL, NULL);
- zvalue = d3_xCreateToggleItem ("zvalue", pannel2, NULL, NULL, NULL);
- nothing = d3_xCreateToggleItem ("nothing", pannel2, NULL, NULL, NULL);
-
- XtAddCallback(activation, XtNcallback, (XtCallbackProc) d3_setUnitMode, (caddr_t) activation_on);
- XtAddCallback(initact, XtNcallback, (XtCallbackProc) d3_setUnitMode, (caddr_t) init_act_on);
- XtAddCallback(output, XtNcallback, (XtCallbackProc) d3_setUnitMode, (caddr_t) output_on);
- XtAddCallback(bias, XtNcallback, (XtCallbackProc) d3_setUnitMode, (caddr_t) bias_on);
- XtAddCallback(name, XtNcallback, (XtCallbackProc) d3_setUnitMode, (caddr_t) name_on);
- XtAddCallback(number, XtNcallback, (XtCallbackProc) d3_setUnitMode, (caddr_t) number_on);
- XtAddCallback(zvalue, XtNcallback, (XtCallbackProc) d3_setUnitMode, (caddr_t) zvalue_on);
- XtAddCallback(nothing, XtNcallback, (XtCallbackProc) d3_setUnitMode, (caddr_t) nothing_on);
-
- done = d3_xCreateButtonItem ("done", border, NULL, NULL);
- XtAddCallback(done, XtNcallback, (XtCallbackProc) d3_closeUnitPannel, (caddr_t) unitPannel);
-
- memcpy (&temp_unit_mode, &d3_state.unit_mode,
- sizeof (d3_unit_mode_type));
-
- if (first_call) {
- selected_unit_mode = select_size;
- toggled_unit_mode = temp_unit_mode.size;
- first_call = FALSE;
- }
-
- d3_selectUnitMode (pannel1, selected_unit_mode, NULL);
- d3_setUnitMode (pannel1, toggled_unit_mode, NULL);
-
- ui_checkWindowPosition(unitPannel);
- XtPopup (unitPannel, XtGrabExclusive);
- ui_xDontResizeWidget(unitPannel);
- }
-
-
- /* end of file */
- /* lines: 301 */
-